http://coding.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/